﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace rent_car.Manejadores
{
    class ManejadorDeUsuarios : Manejador
    {
        private ManejadorDeUsuarios()
        {
            manejadorBd = new EnlaceDatosDataContext();
        }

        public static ManejadorDeUsuarios GetInstancia()
        {
            if (instancia == null)
            {
                instancia = new ManejadorDeUsuarios();
            }
            return instancia;
        }

        public bool Acceso(string usuario, string clave)
        {
            foreach (usuario u in manejadorBd.usuarios.ToList())
            {
                if (u.usuario1.Equals(usuario) && u.clave.Equals(clave))
                {
                    UsuarioActual = u;
                    return true;
                }
            }
            return false;
        }

        #region Manejador Members
      
        public void agregar(object objeto)
        {
            usuario usuario = (usuario)objeto;
            manejadorBd.agregarPersona3(
                usuario.persona.nombre,
                usuario.persona.apellido,
                usuario.persona.telefono,
                usuario.persona.celular);
            usuario.persona.persona_id = manejadorBd.personas.ToList().Last().persona_id;
            manejadorBd.agregarUsuario(usuario.persona.persona_id,
                usuario.clave,
                usuario.usuario1,
                usuario.activo);          
        }

        public void eliminar(int id)
        {
            manejadorBd.eliminarUsuarios(id);
        }

        public void modificar(object objeto)
        {
            usuario usuario = (usuario)objeto;
            manejadorBd.modificarPersonas(usuario.persona.persona_id,
                usuario.persona.nombre,
                usuario.persona.apellido,
                usuario.persona.telefono,
                usuario.persona.celular,
                null,null,null,null,null,null,null,null,null,null,null
                );

            manejadorBd.modificarUsuario(
                usuario.persona.persona_id,                
                usuario.usuario1,
                usuario.clave,
                usuario.activo);
        }

        public ICollection getObject()
        {
            var usuarios = from u in manejadorBd.usuarios
                           where u.activo == true
                           select u;
            return usuarios.ToList();
        }

        public usuario UsuarioActual
        {
            get { return usuarioActual; }
            set { usuarioActual = value; }
        }

        private EnlaceDatosDataContext manejadorBd = null;

        private static ManejadorDeUsuarios instancia = null;

        private usuario usuarioActual = null;       

        #endregion
    }
}
